// pages/blog/blog.js
//搜索的关键字
let keyword = ''
Page({

  /**
   * 页面的初始数据
   */
  data: {
    //控制底部弹出层是否显示,false为不显示
    modalShow:false,
    //博客列表
    blogList:[],
  },

  //发布功能
  onPublish(){
    //在点击得时候需要判断用户是否授权了，如果授权了那么正常发布，如果没有授权，那么提示用户进行授权
    //wx.getSetting用来判断用户是否授权
    wx.getSetting({
      success:(res)=> {
        // console.log(res)
        //scope.userInfo为true得时候代表用户授权了
        if (res.authSetting['scope.userInfo']) {
          //如果条件成立为true，那么进行获取用户信息，比如头像等
          wx.getUserInfo({
            success:(res) => {
              // console.log(res)
              //授权成功直接调用成功的方法，把数据发送过去
              this.onLoginSuccess({
                detail:res.userInfo
              })
            }
          })
        }else{
          //如果用户没有授权，那么进行提示框
          this.setData({
            modalShow: true
          })
        }
      }
    })
  },

  //授权成功
  onLoginSuccess(event){
    // console.log(event)
    //把获取到的信息保存起来
    const detail = event.detail
    //授权成功的话，直接跳转到发布博客的页面
    wx.navigateTo({
      url: `../blog-edit/blog-edit?nickName=${detail.nickName}&avatarUrl=${detail.avatarUrl}`,
    })
  },

  //授权失败
  onLoginFail(){
    wx.showModal({
      title: '授权用户才能发布',
      content: '',
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options.scene)
    this._loadBlogList()

    //小程序端调用云数据库
    // const db = wx.cloud.database()
    // db.collection('blog').orderBy('createTime','desc').get().then((res)=>{
    //   console.log(res)
    //  这个地方有一个坑，就是类型不同，需要转换一下类型，否则时间不会正常显示（当前是Object类型）
    //   const data = res.data
    //   for (let i = 0,len = data.length; i < len; i++) {
    //     data[i].createTime = data[i].createTime.toString()
    //   }
    //   this.setData({
    //     blogList:res.data
    //   })
    // })
  },

  //传过来的搜索
  onSearch(event){
    //查询之前先进行清空
    this.setData({
      blogList:[]
    })
    //把获取到的关键字赋值给再上方设置的初始关键字
    keyword = event.detail.keyword
    this._loadBlogList(0)
  },

  //加载博客列表，封装一下，这样不用把太多的逻辑写在onLoad中了
  _loadBlogList(start = 0){
    wx.showLoading({
      title: '拼命加载中....',
    })
    wx.cloud.callFunction({
      name:'blog',
      data:{
        keyword,
        start,
        count: 10,
        $url:'list',
      }
    }).then((res)=>{
      this.setData({
        blogList:this.data.blogList.concat(res.result)
      })
      wx.hideLoading()
      wx.stopPullDownRefresh()
    })
  },

  //点击进入内容详情界面
  goComment(event){
    wx.navigateTo({
      url: '../../pages/blog-comment/blog-comment?blogId='+ event.target.dataset.blogid,
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    //先把当前博客进行清空
    this.setData({
      blogList:[]
    })
    this._loadBlogList(0)
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    this._loadBlogList(this.data.blogList.length)
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function (event) {
    console.log(event)
    let blogObj = event.target.dataset.blog
    return {
      title:blogObj.content, //对应的标题
      path:`/pages/blog-comment/blog-comment?blogId=${blogObj._id}` //转发路径，必须是完整路径
    }
  }
})